In video coding, compression efficiency is achieved by exploiting spatial and temporal redundancies in an input sequence of images, to produce a bit-stream representing the video using fewer bits than found in the uncompressed sequence. Intra coding are coding techniques using only spatial redundancy, i.e., pixels in a block of the current image exploit redundancy from previously-decoded pixels in the same image. Temporal redundancy is leveraged in inter coding, where pixel data from previously-decoded images other than the current one are used in the compression process.
The High Efficiency Video Coding (HEVC) standard, currently under development, provides that intra coding uses intra prediction modes. Each intra-coded block is assigned an intra prediction mode, which indicates how previously-decoded pixels are used to reconstruct the current block of pixels. This mode typically indicates an angle or direction along which the difference between current and previously-decoded pixels is analyzed. Compression efficiency is achieved when the data needed to represent the difference between the estimated and actual pixel require fewer bits to represent than the actual pixel itself.
Before decoding a block of pixels, the decoder has to know a prediction mode to use. Currently, this prediction mode is signaled as an index, or value, in the compressed bit-stream. An encoder typically tests several different intra prediction modes, and then selects the best one to use for the current block. The index for this best mode is signaled in the bit-stream. However, the transmission of the index increases the size of the bit-stream.
According to the latest working draft of the HEVC standard, JCTVC-F803, “WD4: Working Draft 4 of High-Efficiency Video Coding,” version 4, Oct. 8, 2011, up to two intra prediction modes are computed as the modes most likely to be used to code the current block. After the encoding process selects the best intra prediction mode for the current block, if one of these most likely modes, or most probable modes (MPM) were selected, then a short set of flags is sent to indicate that the MPM includes the current mode, along with which of these modes to use. The decoder computes the MPM in the same way as the encoder, so the MPM set need not be signaled in the bit-stream. If, however, the current mode is not in the MPM, then an index of the current mode must explicitly be signaled in the bit-stream.
Currently, a ranking table is maintained by both the encoder and decoder, to keep track of the previously-used modes based upon how frequently the modes have been used so far. Because the current mode is more likely to be near the top of the ranking table than at the bottom, the location of the current mode in the ranking table is signaled using fewer bits near the top of the table, and using more bits closer to the bottom of the table. Compression efficiency is achieved when the modes at the top of the table are used more frequently than the other modes.
Maintaining and updating the ranking requires both processing cycles and memory. Also, the ranking table is updated for each block in the coding process, so blocks near the end of the coding process, e.g., the lower-right blocks, use a ranking table that was computed based on statistics over the entire previous image. Depending upon the size of the image, blocks that are far apart may have completely different characteristics, thus making the ranking table inefficient until it is updated using many blocks from the current region of the image. Furthermore, the intra prediction modes depend upon the content of the image, and for some types of images the probability of entries in the ranking table may be more uniform than desired, reducing the compression efficiency for coding the intra prediction mode.
Hence, there is a need for a method of coding images using prediction modes that overcomes the abovementioned drawbacks.